(Quick Reference)
errors
Purpose
An instance of the Spring
Errors interface containing data binding and/or validation errors.
Examples
def user = new User(params)if (user.validate()) {
// do something with user
}
else {
user.errors.allErrors.each {
println it
}
}
Description
The
errors
property is used by Grails during
Data Binding to store type conversion errors and during
Validation when calling the
validate or
save methods.
You can also add your own errors using the
reject and
rejectValue methods:
if (params.password != params.confirm_password) { user.errors.reject(
'user.password.doesnotmatch',
['password', 'class User'] as Object[],
'[Property [{0}] of class [{1}] does not match confirmation]') // The following helps with field highlighting in your view
user.errors.rejectValue(
'password',
'user.password.doesnotmatch') render(view: 'signup', model: [user: user])
}
In the example of
reject
above,
'user.password.doesnotmatch'
, is the error code corresponding to a value in
grails-app/i18n/message.properties
,
['password', 'class User'] as Object[]
is a Groovy cast from a
List
to an
Object
array to match the expected signature, and
'[Property [{0}] of class [{1}] does not match confirmation]'
is the default mapping string.
In the
rejectValue
example,
'password'
is the field in the view to highlight using a
<g:hasErrors>
tag and
'user.password.doesnotmatch'
is the i18n error code.